/*
 * *
 *  * Copyright (c) iwindplus Technologies Co., Ltd.2024-2030, All rights reserved.
 *
 *
 */

package com.iwindplus.mgt.domain.enums;

import com.iwindplus.base.domain.exception.CommonException;
import lombok.Getter;

/**
 * 业务编码返回值枚举.
 *
 * @author zengdegui
 * @since 2018/12/27
 */
@Getter
public enum MgtCodeEnum implements CommonException {
    /**
     * 子集未删除.
     */
    CHILDREN_NOT_DELETED(90013, "children_not_deleted", "子集未删除"),

    /**
     * 资源未删除.
     */
    RESOURCE_NOT_DELETED(90014, "resource_not_deleted", "资源未删除"),

    /**
     * 编码已经存在.
     */
    CODE_EXIST(90015, "code_exist", "编码已经存在"),

    /**
     * 路由ID已经存在.
     */
    ROUTE_ID_EXIST(90016, "route_id_exist", "路由ID已经存在"),

    /**
     * 名称已经存在.
     */
    NAME_EXIST(90017, "name_exist", "名称已经存在"),

    /**
     * 手机不能为空.
     */
    MOBILE_NOT_EMPTY(90019, "mobile_not_empty", "手机不能为空"),

    /**
     * 手机已经存在 .
     */
    MOBILE_EXIST(900130, "mobile_exist", "手机已经存在"),

    /**
     * 手机不存在.
     */
    MOBILE_NOT_EXIST(900134, "mobile_not_exist", "手机不存在"),

    /**
     * 邮箱不能为空.
     */
    MAIL_NOT_EMPTY(900136, "mail_not_empty", "邮箱不能为空"),

    /**
     * 邮箱未被绑定.
     */
    MAIL_NOT_EXIST(900137, "mail_not_exist", "邮箱未被绑定"),

    /**
     * 邮箱已经被绑定了.
     */
    MAIL_EXIST(900138, "mail_exist", "邮箱已经被绑定了"),

    /**
     * 工号已经存在.
     */
    JOB_NUMBER_EXIST(900139, "job_number_exist", "工号已经存在"),

    /**
     * 用户名已经存在.
     */
    USERNAME_EXIST(900140, "username_exist", "用户名已经存在"),

    /**
     * 身份证已经存在.
     */
    ID_CARD_EXIST(900150, "id_card_exist", "身份证已经存在"),

    /**
     * 身份证格式错误.
     */
    ID_CARD_FORMAT_ERROR(900151, "id_card_format_error", "身份证格式错误"),

    /**
     * 原密码错误.
     */
    OLD_PASSWORD_ERROR(900152, "old_password_error", "原密码错误"),

    /**
     * 新密码不能与原密码相同.
     */
    PASSWORD_COMMON(900153, "password_common", "新密码不能与原密码相同"),

    /**
     * 账号不能为空
     */
    ACCOUNT_NOT_EMPTY(900156, "account_not_empty", "账号不能为空"),

    /**
     * 密码不能为空.
     */
    PASSWORD_NOT_EMPTY(900170, "password_not_empty", "密码不能为空"),

    /**
     * 组织不存在.
     */
    ORG_NOT_EXIST(900172, "org_not_exist", "组织不存在"),

    /**
     * 用户不存在.
     */
    USER_NOT_EXIST(900173, "user_not_exist", "用户不存在"),

    /**
     * 角色不存在.
     */
    ROLE_NOT_EXIST(900174, "role_not_exist", "角色不存在"),

    /**
     * 用户已切换组织.
     */
    USER_HAS_SWITCHED_ORG(900175, "user_has_switched_org", "用户已切换组织"),

    /**
     * 客户端被禁用.
     */
    CLIENT_DISABLED(900176, "client_disabled", "客户端被禁用"),

    /**
     * 客户端被锁定.
     */
    CLIENT_LOCKED(900177, "client_locked", "客户端被锁定"),

    /**
     * 验证码不能为空.
     */
    CAPTCHA_NOT_EMPTY(900178, "captcha_not_empty", "验证码不能为空"),

    /**
     * 编码不能为空.
     */
    CODE_NOT_EMPTY(900179, "code_not_empty", "编码不能为空"),

    /**
     * 父级未审核.
     */
    PARENT_UN_AUDITED(900190, "parent_un_audited", "父级未审核"),

    /**
     * 只有新建或已驳回状态才能编辑.
     */
    NEW_AND_REJECTED_CAN_EDIT(900192, "new_and_rejected_can_edit", "只有新建或已驳回状态才能编辑"),

    /**
     * ️已审核过了.
     */
    AUDITED(9001248, "audited", "已审核过了"),

    /**
     * 服务断言已经存在.
     */
    SERVER_PREDICATE_EXIST(900201, "server_predicate_exist", "服务断言已经存在"),

    /**
     * 路径已经存在.
     */
    URL_EXIST(900202, "url_exist", "路径已经存在"),

    /**
     * url前缀与服务访问前缀不匹配.
     */
    URL_PREFIX_ERROR(900203, "url_prefix_error", "url前缀与服务访问前缀不匹配"),

    /**
     * mq未配置（交换机、队列、路由Key等）.
     */
    MQ_NO_CONFIG(900204, "mq_no_config", "mq未配置（交换机、队列、路由Key等）"),

    /**
     * IP已经存在.
     */
    IP_EXIST(900205, "ip_exist", "IP已经存在"),

    /**
     * 角色编码开头应为role.
     */
    ROLE_PREFIX_ERROR(900206, "role_prefix_error", "角色编码开头应为role"),

    /**
     * 菜单编码开头应为menu.
     */
    MENU_PREFIX_ERROR(900207, "menu_prefix_error", "菜单编码开头应为menu"),

    /**
     * 按钮编码开头应为button.
     */
    BUTTON_PREFIX_ERROR(900208, "button_prefix_error", "按钮编码开头应为button"),

    /**
     * API编码开头应为api.
     */
    API_PREFIX_ERROR(900209, "api_prefix_error", "API编码开头应为api"),

    /**
     * 路由路径已经存在.
     */
    ROUTE_URL_EXIST(900210, "route_url_exist", "路由路径已经存在"),

    /**
     * API路径已经存在.
     */
    API_URL_EXIST(900211, "api_url_exist", "API路径已经存在"),

    /**
     * API路径不能为空.
     */
    API_URL_NOT_EMPTY(900212, "api_url_not_empty", "API路径不能为空"),

    /**
     * 控制器名称已经存在.
     */
    CONTROLLER_NAME_EXIST(900213, "controller_name_exist", "控制器名称已经存在"),

    /**
     * API名称已经存在.
     */
    API_NAME_EXIST(900214, "api_name_exist", "API名称已经存在"),

    /**
     * 职位未删除.
     */
    POSITION_NOT_DELETED(90015, "position_not_deleted", "职位未删除"),

    ;

    /**
     * 业务状态码.
     */
    private final Integer bizStatus;

    /**
     * 业务编码.
     */
    private final String bizCode;

    /**
     * 业务信息.
     */
    private final String bizMessage;

    /**
     * 构造方法.
     *
     * @param bizStatus  业务状态码
     * @param bizCode    业务编码
     * @param bizMessage 业务信息
     */
    MgtCodeEnum(final Integer bizStatus, final String bizCode, final String bizMessage) {
        this.bizStatus = bizStatus;
        this.bizCode = bizCode;
        this.bizMessage = bizMessage;
    }
}
